Many computer user interfaces support selection and de-selection of objects for processing by applications. For example, a mail order business may provide a browser application that displays boxes or buttons that may be selected for ordering various products, or for selecting options for billing and shipment. As another example, a user of a calendar or scheduler may select one or more groups of hours or days that may cover several different time intervals for scheduling various events or activities. Further, a user of a file system may select groups of files for further processing.
One example technique for selecting objects includes using a mouse such that the mouse may be clicked on an object to select an object. A user interface may thus receive an indication that the mouse has been depressed and released while a cursor is over the object on a display device such as a screen. For example, an object displayed to the user may appear as a box on a screen. When the user depresses and releases a button on the mouse while a cursor is over the box displayed on the screen, the interface may change a state of the object associated with the displayed box, and may display a check mark in the box to indicate to the user that the object has been toggled on. Similarly, if the user repeats the action of depressing and releasing the mouse button while the cursor is over the displayed box, the box may appear without the check mark, and the state of the associated object may be toggled to an off state.
An extension of the toggling technique discussed above may include depressing the mouse button while the cursor is over a first object on the screen, and dragging the mouse while also depressing a modifier key such as a “shift” key, a “control” key (i.e., a Ctrl key), or an “Alt” key on a keyboard, and releasing the mouse button when the cursor is over a different object on the screen. This action may allow the user to select and toggle multiple objects that appear as contiguous objects on the screen that include the first object, the different object, and any objects that may appear between these objects on the screen. It may also be possible to de-select (and toggle to a different state) some of the multiple selected objects, for example, by depressing a modifier key such as the “control” key while clicking the mouse on individual ones of the previously selected objects. This type of operation may be used to select and toggle discontinuous sets of objects as they appear on the display device for the user.
In the examples discussed above, it may be possible to de-select all selected objects, removing the toggle, by clicking (i.e., depressing and releasing the mouse button, with no modifier key depressed) in an area of the screen that is external to the selected area. In some environments, such as a web browser, it may not be feasible to rely on a modifier key or the operation of clicking on an area “outside” the selected area, as use of modifier keys or other modifier inputs may be an unexpected interaction for many applications, or the use of modifier keys may not be available across all platforms supported by the interface. Further, registering a mouse click “outside” the boundaries of object selection sets as a deselect command may conflict with other intended consequences of clicking (e.g., clicking a mouse to submit a form to a server).